<?php

class Doctrine_Model_SesionesDao extends Doctrine_Model_BaseDao {
    
    public function guardar(Doctrine_Model_Entities_Sesiones $unaSesion) {
        //var_dump($unCliente);
        try {
            $this->getEntityManager()->persist($unaSesion);
            $this->getEntityManager()->flush();
            return true;
        } catch (Exception $e) {
            $logger = Zend_Registry::get('logger');
            $logger->log("Error: " . $e->getMessage(), Zend_Log::ERR);
            return false;
        }
    }
    
    public function obtenerPorId($id) {
        return $this->getEntityManager()->find('Doctrine_Model_Entities_Sesiones', $id);
    }
    
    public function eliminar(Doctrine_Model_Entities_Sesiones $unaSesion) {
        try {
            $this->getEntityManager()->remove($unaSesion);
            $this->getEntityManager()->flush();

            return true;
        } catch (Exception $e) {
            $logger = Zend_Registry::get('logger');

            $logger->log("Error: " . $e->getMessage(), Zend_Log::ERR);
            return false;
        }
    }
    
    public function obtenerEntreFechas($fecha_desde,$fecha_hasta,$tipo_sesion){
        $clientes = Array();
        $sql = "select s from Doctrine_Model_Entities_Sesiones s WHERE s.fechaSesion BETWEEN '$fecha_desde' AND '$fecha_hasta'";
        if (!is_null($tipo_sesion)){
            $sql .= " AND s.tipoSesion = $tipo_sesion";
        }
        $sql .= "ORDER BY s.fechaSesion";
        
        $clientes =  $this->getEntityManager()
                        ->createQuery($sql)
                        ->getResult();
        return $clientes;
    }
    
    public function obtenerOrdenados($ingreso_id){
        $sesiones = array();
        $sql = "select s from Doctrine_Model_Entities_Sesiones s WHERE s.ingreso = $ingreso_id";
        $sql .= "ORDER BY s.fechaSesion";
        $sesiones =  $this->getEntityManager()
                        ->createQuery($sql)
                        ->getResult();
        return $sesiones;
    }
}